---
title: アニメーション
description: Yamada UIは、あなたが表現したいアニメーションを簡単に実現するための機能を提供しています。
---

## 使い方

```tsx preview
<Box
  w="fit-content"
  bg="bg.contrast"
  color="fg.contrast"
  p="md"
  animationDirection="alternate"
  animationDuration="1s"
  animationIterationCount="infinite"
  animationTimingFunction="linear"
  _keyframes={{
    from: { translate: "0 0" },
    to: { translate: "100% 0" },
  }}
>
  Box
</Box>
```

また、[テーマ](/docs/theming)の[キーフレーム](/docs/theming/tokens/keyframes)を使用することで、アプリケーション全体で共通のキーフレームを適用することができます。使用する場合は、`animationName`または`_keyframes`に値を設定します。

```tsx preview
<Box
  w="fit-content"
  bg="bg.contrast"
  color="fg.contrast"
  p="md"
  animationName="fade-in"
  animationDirection="alternate"
  animationDuration="1s"
  animationIterationCount="infinite"
  animationTimingFunction="linear"
>
  Box
</Box>
```

### テーマのトークンを使う

[テーマ](/docs/theming)の[アニメーション](/docs/theming/tokens/animations)を使用する場合は、`animation`に値を設定します。

```tsx preview
<Box
  w="fit-content"
  bg="bg.contrast"
  color="fg.contrast"
  p="md"
  animation="fade-in"
>
  Box
</Box>
```

:::warning
デフォルトでは、アニメーションのトークンは定義されていません。
:::

## コンポーネント

Yamada UIには、アニメーションをより簡単にしたコンポーネントを提供しています。

::::card-group

:::card{title="Motion" href="/docs/components/motion"}

[Motion](https://motion.dev/)にYamada UIの[Style Props](/docs/styling/style-props)を拡張した便利なコンポーネントです。

:::
:::card{title="Airy" href="/docs/components/airy"}

２つの要素をふわっと切り替えるアニメーションを提供するコンポーネントです。

:::
:::card{title="Collapse" href="/docs/components/collapse"}

要素を展開または折りたたんで表示するコンポーネントです。

:::
:::card{title="FadeScale" href="/docs/components/fade-scale"}

要素を次第に拡大して表示または縮小して非表示にするコンポーネントです。

:::
:::card{title="Fade" href="/docs/components/fade"}

要素を次第に表示または非表示にするコンポーネントです。

:::
:::card{title="Flip" href="/docs/components/flip"}

２つの要素をフリップさせながら切り替えるアニメーションを提供するコンポーネントです。

:::
:::card{title="Ripple" href="/docs/components/ripple"}

要素に波及効果を付与し、ユーザーがクリックしたかどうかを認識させるコンポーネントです。

:::
:::card{title="Rotate" href="/docs/components/rotate"}

２つの要素を回転させながら切り替えるアニメーションを提供するコンポーネントです。

:::
:::card{title="Skeleton" href="/docs/components/skeleton"}

コンテンツが読み込まれるまでのプレースホルダーとして機能するコンポーネントです。

:::
:::card{title="SlideFade" href="/docs/components/slide-fade"}

要素を指定位置から移動しながら次第に表示または非表示にするコンポーネントです。

:::
:::card{title="Slide" href="/docs/components/slide"}

要素をページの隅から表示または非表示にするコンポーネントです。

:::
::::

## フック

Yamada UIには、アニメーションの便利なカスタムフックを提供しています。

::::card-group
:::card{title="useAnimation" href="/docs/hooks/use-animation"}

CSSの`keyframes`のように記述してアニメーションを実装するカスタムフックです。

:::
:::card{title="useDynamicAnimation" href="/docs/hooks/use-dynamic-animation"}

アニメーションを切り替えるために使用するカスタムフックです。

:::
::::
